package com.tom.springframework.beans.factory;

import com.tom.springframework.beans.BeansException;
import com.tom.springframework.beans.factory.config.AutowireCapableBeanFactory;
import com.tom.springframework.beans.factory.config.BeanDefinition;
import com.tom.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * 自动配置的Bean工厂
 *
 * @author zx
 * @date 2024年11月18日 17:24
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;

    /**
     * 销毁单例对象
     */
    void destroySingletons();
}
